MySQL8源代码安装(CentOS8版本) 您所在的位置:网站首页 centos8 安装 mysql8 MySQL8源代码安装(CentOS8版本)

MySQL8源代码安装(CentOS8版本)

2024-07-17 10:32| 来源: 网络整理| 查看: 265

目标

在CentOS8上面源代码编译安装MySQL8.

下载源代码

打开MySQL下载页面: https://www.mysql.com/downloads/

找到MySQL社区版本页面: MySQL社区版本页面 选择下载MySQL社区版服务器进行下载: MySQL社区服务器版 最后选择,MySQL源代码进行下载,如下图: mysql源代码下载boost

这里选择了与平台无关的的源代码进行下载,注意这里需要包含boost。

安装

检查下载的源代码没有问题后,将源代码上传到需要安装的linux服务器上面。

# 检查用户组是否存在 cat /etc/group | grep mysql # 检查用户是否存在 cat /etc/passwd | grep mysql # 添加用户组 groupadd mysql # 添加用户 useradd -r -g mysql -s /bin/false mysql # 解压安装包 tar zxvf ./mysql-boost-8.0.31.tar.gz # 进入源码目录 cd ./mysql-8.0.31/ # 创建编译目录 mkdir bld # 进入编译目录 cd bld # 创建安装目录 mkdir /opt/mysql # 配置 cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost # 编译 make # 安装 make install

参数说明:

-DBUILD_CONFIG=mysql_release:表示使用与官方一样的配置;-DCMAKE_INSTALL_PREFIX=/opt/mysql:设置安装的目录;-DCPACK_MONOLITHIC_INSTALL=1:使 make package 生成单个安装文件;-DWITH_DEBUG=0:禁用debug;-DWITH_SSL=system:支持ssl;-DWITH_BOOST=$HOME/mysql-8.0.31/boost:boost安装目录。

期间遇到的依赖问题:

dnf install gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils dnf install gcc-toolset-11-annobin-plugin-gcc 准备数据库配置文件 # 到安装目录 cd /opt/mysql/ # 参加数据库数据文件目录 mkdir data # 修改权限 chown mysql:mysql data chmod 750 data # 准备数据库配置 vim my.cnf my.cnf [mysqld] port=3306 socket=/tmp/mysql.sock mysqlx-port=33060 mysqlx-socket=/tmp/mysqlx.sock basedir=/opt/mysql datadir=/opt/mysql/data 初始化与启动数据库 bin/mysqld --defaults-file=./my.cnf --initialize --user=mysql

输出如下:

2023-01-18T06:45:20.659891Z 0 [System] [MY-013169] [Server] /opt/mysql/bin/mysqld (mysqld 8.0.31) initializing of server in progress as process 1965037 2023-01-18T06:45:20.667103Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2023-01-18T06:45:20.987887Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2023-01-18T06:45:22.135569Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxx # 设置ssl bin/mysql_ssl_rsa_setup # 手动启动数据库 bin/mysqld_safe --defaults-file=./my.cnf --user=mysql

保持前台手动启动mysql进程,新开一个窗口,来加固mysql:

bin/mysql_secure_installation --port=3306 -h 127.0.0.1 -p 测试 mysql -P 3306 -h 127.0.0.1 -u root -p

输出如下:

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.31 Source distribution Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql>

这样就表示mysql启动成功了。 关闭mysql前台运行方式:

bin/mysqladmin shutdown -h 127.0.0.1 -P 3306 -p

输入正确的root密码,就会关闭mysqld进程。

注册为系统服务 init旧脚本: # 负责系统服务配置文件 cp support-files/mysql.server /etc/init.d/mysql.server # 重新加载配置文件 systemctl daemon-reload # 注册为系统服务 systemctl enable mysql.server.service # 启动数据库 systemctl start mysql.server.service # 查看数据库启动状态 systemctl status mysql.server.service # 停止数据库 systemctl stop mysql.server.service Sys V新脚本:

如果在配置编译时,使用如下配置:

cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost -DWITH_SYSTEMD=1 -DSYSTEMD_PID_DIR=/var/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld

即配置如下: -DWITH_SYSTEMD=1 -DSYSTEMD_PID_DIR=/var/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld 这样就是让源码编译生产sys v的脚本。

cp ./usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld.service # 重新加载配置文件 systemctl daemon-reload # 注册为系统服务 systemctl enable mysqld.server.service # 启动数据库 systemctl start mysqld.server.service # 查看数据库启动状态 systemctl status mysqld.server.service # 停止数据库 systemctl stop mysqld.server.service

注意:这里这种方式sys v读取的my.cnf位置在/opt/mysql/etc/my.cnf这个位置。

总结

到这里基本上就完成了mysql8的源码安装了。并且使用mysql提供的服务脚本,做成了系统服务。

参考: 播布客小辉老师MySQL课程2.9.4 Installing MySQL Using a Standard Source Distribution2.9.6 Configuring SSL Library Support2.9.7 MySQL Source-Configuration Options5.1.8 Server System Variables2.5.9 Managing MySQL Server with systemd


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有